For certain applications it is desirable to provide an information processing system which emulates the functionality of another information processing system. Such a system is especially advantageous when it is desired to execute, with a first type of system, application software developed for a second type of system.
As can be appreciated, in such systems it is desirable that the software be executed with little or no change. That is, if it becomes necessary to rewrite portions of the software the desirability of executing the software on the first type of system is decreased.
One impediment to this type of system emulation is that the software is typically written to interact with a specific type of I/O device. For example, a serial communications program is written for a particular type of serial communication integrated circuit located at a specific system address. One approach to emulation may be to provide the specific types of I/O devices required by the application software. However, in many types of systems this is not desirable or practical in that the system may be primarily used for significantly different applications.
It has been known to provide in such systems a first application processor which executes the desired application software and a second emulation control processor. However, many of these conventional types of systems utilize a mechanism whereby an access by the application processor to a specific I/O device generates an interrupt which in turn invokes specific and different software routines by the application processor. Such interrupt driven systems typically require that portions of the application software be rewritten and/or that additional application software be provided in order to properly emulate the I/O devices. Thus, the portability and ease of use of the target application software is compromised.